package com.tungse.study.file;

import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.net.Socket;

/**
 * @author Tungse
 * 实现客户端上传任意文件给服务端进行保存
 */
public class ClientFile {

    public static void main(String[] args) {
        try (
                FileInputStream fis = new FileInputStream("D:\\Users\\Tungse\\Desktop\\QQ截图20250207103712.png");
        ) {
            //1. 请求与服务端的socket链接
            Socket socket = new Socket("127.0.0.1", 9999);
            //2 把字节输出流包装为一个数据输出流
            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
            //3 先把文件的后缀名发送给服务端
            dos.writeUTF(".png");
            //4 把文件内容发送给服务端

            byte[] buffer = new byte[1024];
            int len;
            while ((len = fis.read(buffer)) != -1) {
                dos.write(buffer, 0, len);
            }
            dos.flush();
            socket.shutdownOutput();//通知服务端发送完成
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
